package com.neuedu.corejava.ch10;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetClass {

	public static void main(String[] args) {
		//Set集合
		//Set集合：是Collection集合的子接口，set集合用于保存无序且唯一的数据
		Computer computer=new Computer("HP",5000);
		Computer computer2=new Computer("HW",5000);
		Computer computer3=new Computer("HW",5000);
		
		//集合的学习：
		//学习有哪些集合，每个集合实现了数据结构
		//学习对集合的元素进行增删查改
		Set  computerSet=new HashSet();
		computerSet.add(computer);
		computerSet.add(computer2);
		//注意：Set集合的唯一性一般指，同一条数据（对象）不能被保存两次，而不是指对象的内部数据相同
		//    如果需要根据元素的数据进行判断，则需要重写equals方法
		computerSet.add(computer3);
		System.out.println("size=====>"+computerSet.size());
		
		//集合遍历（查）
		//方法1： 推荐方法 
		//  使用迭代接口
		Iterator iterator =computerSet.iterator();
		while(iterator.hasNext()) {//hasNext判断集合中是否有下一条数据
			Object object=iterator.next();//取出条数据，并把指针下移
		    Computer  comp=(Computer)object;
		    System.out.println(comp);
		}
		
		//删除
		computerSet.remove(computer2);
		System.out.println("size="+computerSet.size());
	    iterator =computerSet.iterator();
		while(iterator.hasNext()) {//hasNext判断集合中是否有下一条数据
			Object object=iterator.next();//取出条数据，并把指针下移
		    Computer  comp=(Computer)object;
		    //对集合中的数据（元素）进行修改
		    comp.setBrand("dell");
		    System.out.println(comp);
		}
		
		//查询数据是否在集合中
		if(computerSet.contains(computer2)) {
			System.out.println("数据在集合中");
		}else {
			System.out.println("数据没有保存到集合中");
		}
		System.out.println("size="+computerSet.size());
		
		
		iterator =computerSet.iterator();
		while(iterator.hasNext()) {//hasNext判断集合中是否有下一条数据
			Object object=iterator.next();//取出条数据，并把指针下移
		    Computer  comp=(Computer)object;
		    System.out.println(comp);
		}

		
		
	
	}

}
